﻿/// <reference path="../Externos/jquery-1.9.1.min.js" />
/// <reference path="../Externos/jquery-ui-1.10.2.custom.min.js" />
/// <reference path="../Externos/json2.min.js" />
/// <reference path="Ajax.js" />
/// <reference path="Comun.js" />

$(document).ready(function () {
    $('#cargarAjax').data('cargarAjax', true);

    $('#acordeon-perfil').accordion({
        active: false,
        collapsible: true,
        heightStyle: "content",
        beforeActivate: function (event, ui) {
            var cargarAjax = $('#cargarAjax').data('cargarAjax');

            if (cargarAjax) {
                $('#cargarAjax').data('cargarAjax', false);
                Ajax("ObtenerDatosPerfil", JSON.stringify({ idUsuario: $('#ensesion').data('ensesion') }), ObtenerDatosPerfil_cb);
            }
        }
    });

    $('#fecha-nacimiento-modificar-perfil').datepicker({
        changeMonth: true,
        changeYear: true,
        maxDate: '-18Y',
        dateFormat: "dd/mm/yy"
    });

    $("#dialogo-modificar-perfil").dialog({
        height: 350,
        width: 400,
        modal: true,
        autoOpen: false,
        resizable: false,
        draggable: false,
        buttons: { "Guardar": ModificarDatosUsuario }
    });

    $("#dialogo-modificar-pass").dialog({
        height: 200,
        width: 400,
        modal: true,
        autoOpen: false,
        resizable: false,
        draggable: false,
        buttons: { "Cambiar": ModificarPassUsuario }
    });
    
    $('#boton-modificar-perfil').button()
    .click(function () {
        $("#dialogo-modificar-perfil").dialog('open');
    });

    $('#boton-cambiar-pass-perfil').button()
    .click(function () {
        $("#dialogo-modificar-pass input[type='password']").val('');
        $("#dialogo-modificar-pass").dialog('open');
    });

    $('#boton-baja-perfil').button()
    .click(function () {
        var idUsuario = $('#ensesion').data('ensesion');
        MostrarConfirmacion(idUsuario, 'Si da de baja su usuario, sus reservas, se cancelarán automáticamente. ¿Esta seguro que quiere darse de baja?', DardeBajaUsuario);
    });
});

function ObtenerDatosPerfil_cb(res) {
    res = res.d;
    var Usuario = res.Usuario;

    if (res.Resultado) {

        var usuarioRefrescado = {
            IdUsuario: $('#ensesion').data('ensesion'),
            Nombre: Usuario.Nombre,
            Apellido1: Usuario.Apellido1,
            Apellido2: Usuario.Apellido2,
            FechaNacimiento: Usuario.FechaNacimiento,
            Email: Usuario.Email,
            Telefono: Usuario.Telefono,
            Direccion: Usuario.Direccion,
            Poblacion: Usuario.Poblacion,
            Provincia: Usuario.Provincia
        };
        actualizarbbdd(usuarioRefrescado);
        MostrarDatosUsuario(Usuario);
    }
    else {
        MostrarAlerta(res.Mensaje, 2);
    }
}

function MostrarDatosUsuario(Usuario) {
    $('#nombre-usuario-perfil').html(Usuario.NombreUsuario);
    $('#nombre-perfil').html(Usuario.Nombre + ' ' + Usuario.Apellido1 + ' ' + Usuario.Apellido2);
    $('#direccion-perfil').html(Usuario.Direccion + ', ' + Usuario.Poblacion + ', ' + Usuario.Provincia);
    $('#email-perfil').html(Usuario.Email);
    $('#fecha-nacimiento-perfil').html(Usuario.FechaNacimiento);
    $('#telefono-perfil').html(Usuario.Telefono);

    var Reservas = Usuario.Reservas,
        sHtml = "";

    if (Reservas.length == 0) {
        sHtml += "<h3>Sin reservas</h3>";
        sHtml += "<p>Actualmente no tiene reservas realizadas.</p>";
    }
    else{
        sHtml += "<table>";
        sHtml +=    "<thead>";
        sHtml +=        "<tr>";
        sHtml +=            "<th>Nº Reserva</th>";
        sHtml +=            "<th>Hotel</th>";
        sHtml +=            "<th>Fecha Entrada</th>";
        sHtml +=            "<th>Fecha Salida</th>";
        sHtml +=            "<th>Noches</th>";
        sHtml +=            "<th>Precio</th>";
        sHtml +=        "</tr>";
        sHtml +=    "</thead>";
        sHtml +=    "</tbody>";

        for (var index = 0; index < Reservas.length; index++) {
            sHtml += "<tr>";
            sHtml += "<td>" + Reservas[index].idReserva + "</td>";
            sHtml += "<td>" + Reservas[index].Hotel + "</td>";
            sHtml += "<td>" + Reservas[index].FechaEntrada + "</td>";
            sHtml += "<td>" + Reservas[index].FechaSalida + "</td>";
            sHtml += "<td>" + Reservas[index].Noches + "</td>";
            sHtml += "<td>" + Reservas[index].Precio + "</td>";
            sHtml += "</tr>";
        }
        sHtml +=    "</tbody>";
        sHtml += "</table>";
    }
    
    $('#reservas-perfil').html(sHtml);

    $('#nombre-modificar-perfil').val(Usuario.Nombre); 
    $('#apellido1-modificar-perfil').val(Usuario.Apellido1);
    $('#apellido2-modificar-perfil').val(Usuario.Apellido2);
    $('#direccion-modificar-perfil').val(Usuario.Direccion);
    $('#poblacion-modificar-perfil').val(Usuario.Poblacion);
    $('#provincia-modificar-perfil').val(Usuario.Provincia);
    $('#email-modificar-perfil').val(Usuario.Email);
    $('#fecha-nacimiento-modificar-perfil').datepicker('setDate', Usuario.FechaNacimiento);
    $('#telefono-modificar-perfil').val(Usuario.Telefono);
}

function ModificarDatosUsuario() {
    if (ValidarFormulario('dialogo-modificar-perfil')) {
        var data = {
            idUsuario: $('#ensesion').data('ensesion'),
            nombre: $('#nombre-modificar-perfil').val(),
            primerApellido: $('#apellido1-modificar-perfil').val(),
            segundoApellido: $('#apellido2-modificar-perfil').val(),
            direccion: $('#direccion-modificar-perfil').val(),
            poblacion: $('#poblacion-modificar-perfil').val(),
            provincia: $('#provincia-modificar-perfil').val(),
            email: $('#email-modificar-perfil').val(),
            fechaNacimiento: $('#fecha-nacimiento-modificar-perfil').datepicker('getDate'),
            telefono: $('#telefono-modificar-perfil').val()
        };

        Ajax('ModificarDatosUsuario', JSON.stringify(data), ModificarDatosUsuario_cb);
    }
    else {
        MostrarAlerta('Falta algún campo por rellenar', 3);
    }
}

function ModificarDatosUsuario_cb(res) {
    if (res.d.Resultado) {
        Ajax("ObtenerDatosPerfil", JSON.stringify({ idUsuario: $('#ensesion').data('ensesion') }), ObtenerDatosPerfil_cb);
        $("#dialogo-modificar-perfil").dialog('close');
        MostrarAlerta(res.d.Mensaje, 1);
    }
    else {
        MostrarAlerta(res.d.Mensaje, 2);
    }
}


function ModificarPassUsuario() {
    if (ValidarFormulario('dialogo-modificar-pass') && $('#pass-nueva').val() == $('#pass-nueva-repetida').val()) {
        var data = {
            idUsuario: $('#ensesion').data('ensesion'),
            antiguaPass: $('#pass-antigua').val(),
            nuevaPass: $('#pass-nueva').val()  
        };

        Ajax('ModificarPassUsuario', JSON.stringify(data), ModificarPassUsuario_cb);
    }
    else {
        MostrarAlerta('Revise los datos introducidos', 3);
    }
}

function ModificarPassUsuario_cb(res) {
    if (res.d.Resultado) {
        $("#dialogo-modificar-pass").dialog('close');
        
        MostrarAlerta(res.d.Mensaje, 1);
    }
    else {
        MostrarAlerta(res.d.Mensaje, 2);
    }
}


function DardeBajaUsuario(idUsuario) {
    Ajax('DardeBajaUsuario', JSON.stringify({ idUsuario: idUsuario }), DardeBajaUsuario_cb);
}


function DardeBajaUsuario_cb(res) {
    if (res.d.Resultado) {
        MostrarAlerta(res.d.Mensaje, 1);
        CerrarSesion();
    }
    else {
        MostrarAlerta(res.d.Mensaje, 2);
    }
}